<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-whc_version="25.0">
    <head><link rel="shortcut icon" href="../../../oxygen-webhelp/template/images/favicon.png"/><link rel="icon" href="../../../oxygen-webhelp/template/images/favicon.png"/><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="copyright" content="(C) Copyright 2024"/><meta name="generator" content="DITA-OT"/><meta name="description" content="Supported pipeline types: Data Collector The JavaScript Scripting origin runs a JavaScript script to create Data Collector records. The JavaScript Scripting origin supports Java version 8u40 and later ..."/><meta name="prodname" content="Data Collector"/><meta name="version" content="3"/><meta name="release" content="16"/><meta name="modification" content="0"/>        
      <title>JavaScript Scripting</title><!--  Generated with Oxygen version 25.1, build number 2023042410.  --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="concept_kn5_bvt_m3b-d16893e20645"/><meta name="wh-source-relpath" content="datacollector/UserGuide/Origins/JavaScriptScripting.dita"/><meta name="wh-out-relpath" content="datacollector/UserGuide/Origins/JavaScriptScripting.html"/>

    <link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/app/commons.css?buildId=2023042410"/>
    <link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/app/topic.css?buildId=2023042410"/>

    <script src="../../../oxygen-webhelp/app/options/properties.js?buildId=20240802104629"></script>
    <script src="../../../oxygen-webhelp/app/localization/strings.js?buildId=2023042410"></script>
    <script src="../../../oxygen-webhelp/app/search/index/keywords.js?buildId=20240802104629"></script>
    <script defer="defer" src="../../../oxygen-webhelp/app/commons.js?buildId=2023042410"></script>
    <script defer="defer" src="../../../oxygen-webhelp/app/topic.js?buildId=2023042410"></script>
<link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/template/light.css?buildId=2023042410"/><link rel="stylesheet" type="text/css" href="../../../skin.css"/></head>

    <body class="wh_topic_page frmBody">
        
        
        

        
<nav class="navbar navbar-default wh_header" data-whc_version="25.0">
    <div class="container-fluid">
        <div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
            <div class="wh_logo_and_publication_title_container">
                <div class="wh_logo_and_publication_title">
                    
                    <!--
                            This component will be generated when the next parameters are specified in the transformation scenario:
                            'webhelp.logo.image' and 'webhelp.logo.image.target.url'.
                            See: http://oxygenxml.com/doc/versions/17.1/ug-editor/#topics/dita_webhelp_output.html.
                    -->
                    
                    <div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle">  <span class="ph mainbooktitle"><span class="ph">Data Collector</span> User Guide</span>  </span></a></div>
                    
                </div>
                
                <!-- The menu button for mobile devices is copied in the output only when the 'webhelp.show.top.menu' parameter is set to 'yes' -->
                
            </div>

            <div class="wh_top_menu_and_indexterms_link collapse navbar-collapse">
                
                
                <div class=" wh_indexterms_link "><a href="../../../indexTerms.html" title="Index" aria-label="Go to index terms page"><span>Index</span></a></div>
                
            </div>
        </div>
    </div>
</nav>

        <div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">


<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="Search " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="Search query" required="required"/><button type="submit" class="wh_search_button" aria-label="Search"><span class="search_input_text">Search</span></button></div></form>

</div>
        
        <div class="container-fluid">
            <div class="row">

                <nav class="wh_tools d-print-none">
                    
<div data-tooltip-position="bottom" class=" wh_breadcrumb "><ol class="d-print-none"><li><span class="home"><a href="../../../index.html"><span>Home</span></a></span></li><li><div class="topicref" data-id="concept_yjl_nc5_jq"><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_title.html">Origins</a></div></div></li><li class="active"><div class="topicref" data-id="concept_kn5_bvt_m3b"><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_kn5_bvt_m3b">JavaScript Scripting</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ol></div>



                    <div class="wh_right_tools "><button class="wh_hide_highlight" aria-label="Toggle search highlights" title="Toggle search highlights"></button><button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="Collapse sections" title="Collapse sections"></button><div class=" wh_navigation_links "><span id="topic_navigation_links" class="navheader">
  
<span class="navprev"><a class="- topic/link link" href="../../../datacollector/UserGuide/Origins/HTTPServer.html#concept_s2p_5hb_4y" title="HTTP Server" aria-label="Previous topic: HTTP Server" rel="prev"></a></span>  
<span class="navnext"><a class="- topic/link link" href="../../../datacollector/UserGuide/Origins/MultiTableJDBCConsumer.html#concept_zp3_wnw_4y" title="JDBC Multitable Consumer" aria-label="Next topic: JDBC Multitable Consumer" rel="next"></a></span>  </span></div>
<!--External resource link-->
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="Print this page" aria-label="Print this page"></button></div>
                        
                        
                        
                        
                    </div>
                </nav>
            </div>

            

<div class="wh_content_area">
                <div class="row">
                    


                        <nav role="navigation" id="wh_publication_toc" class="col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none">
<div id="wh_publication_toc_content">


                            <div class=" wh_publication_toc " data-tooltip-position="right"><span class="expand-button-action-labels"><span id="button-expand-action" role="button" aria-label="Expand"></span><span id="button-collapse-action" role="button" aria-label="Collapse"></span><span id="button-pending-action" role="button" aria-label="Pending"></span></span><ul role="tree" aria-label="Table of Contents"><li role="treeitem" aria-expanded="false"><div data-tocid="concept_htw_ghg_jq-d16893e53" class="topicref" data-id="concept_htw_ghg_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_htw_ghg_jq-d16893e53-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Getting_Started/GettingStarted_Title.html#concept_htw_ghg_jq" id="concept_htw_ghg_jq-d16893e53-link">Getting Started</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_l2v_nlp_mpb-d16893e331" class="topicref" data-id="concept_l2v_nlp_mpb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_l2v_nlp_mpb-d16893e331-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/ReleaseNotes/ReleaseNotes.html#concept_l2v_nlp_mpb" id="concept_l2v_nlp_mpb-d16893e331-link">Release Notes</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_l4q_flb_kr-d16893e2582" class="topicref" data-id="concept_l4q_flb_kr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_l4q_flb_kr-d16893e2582-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Installation/Install_title.html" id="concept_l4q_flb_kr-d16893e2582-link">Installation</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ylh_yyz_ky-d16893e3984" class="topicref" data-id="concept_ylh_yyz_ky" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ylh_yyz_ky-d16893e3984-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Configuration/Config_title.html" id="concept_ylh_yyz_ky-d16893e3984-link">Configuration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ejk_f1f_5v-d16893e7058" class="topicref" data-id="concept_ejk_f1f_5v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ejk_f1f_5v-d16893e7058-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Upgrade/Upgrade_title.html" id="concept_ejk_f1f_5v-d16893e7058-link">Upgrade</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qsw_cjy_bt-d16893e10103" class="topicref" data-id="concept_qsw_cjy_bt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qsw_cjy_bt-d16893e10103-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Design/PipelineDesign_title.html" id="concept_qsw_cjy_bt-d16893e10103-link">Pipeline Concepts and Design</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qn1_wn4_kq-d16893e11199" class="topicref" data-id="concept_qn1_wn4_kq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qn1_wn4_kq-d16893e11199-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Configuration/PipelineConfiguration_title.html" id="concept_qn1_wn4_kq-d16893e11199-link">Pipeline Configuration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hdr_gyw_41b-d16893e13057" class="topicref" data-id="concept_hdr_gyw_41b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hdr_gyw_41b-d16893e13057-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Data_Formats/DataFormats-Title.html" id="concept_hdr_gyw_41b-d16893e13057-link">Data Formats</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="concept_yjl_nc5_jq-d16893e14164" class="topicref" data-id="concept_yjl_nc5_jq" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_yjl_nc5_jq-d16893e14164-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_title.html" id="concept_yjl_nc5_jq-d16893e14164-link">Origins</a></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hpr_twm_jq-d16893e14186" class="topicref" data-id="concept_hpr_twm_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hpr_twm_jq-d16893e14186-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_overview.html#concept_hpr_twm_jq" id="concept_hpr_twm_jq-d16893e14186-link">Origins</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kvs_3hh_ht-d16893e14389" class="topicref" data-id="concept_kvs_3hh_ht" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kvs_3hh_ht-d16893e14389-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AmazonS3.html#concept_kvs_3hh_ht" id="concept_kvs_3hh_ht-d16893e14389-link">Amazon S3</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xsh_knm_5bb-d16893e14683" class="topicref" data-id="concept_xsh_knm_5bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xsh_knm_5bb-d16893e14683-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AmazonSQS.html#concept_xsh_knm_5bb" id="concept_xsh_knm_5bb-d16893e14683-link">Amazon SQS Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mmf_dft_zsb-d16893e14861" class="topicref" data-id="concept_mmf_dft_zsb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mmf_dft_zsb-d16893e14861-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AuroraPostgreSQL.html#concept_mmf_dft_zsb" id="concept_mmf_dft_zsb-d16893e14861-link">Aurora PostgreSQL CDC Client</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ost_qqh_2xb-d16893e15160" class="topicref" data-id="concept_ost_qqh_2xb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ost_qqh_2xb-d16893e15160-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AzureBlobStorage.html#concept_ost_qqh_2xb" id="concept_ost_qqh_2xb-d16893e15160-link">Azure Blob Storage</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_osx_qgz_xhb-d16893e15430" class="topicref" data-id="concept_osx_qgz_xhb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_osx_qgz_xhb-d16893e15430-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/ADLS-G1.html#concept_osx_qgz_xhb" id="concept_osx_qgz_xhb-d16893e15430-link">Azure Data Lake Storage Gen1 (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jmn_csn_zwb-d16893e15995" class="topicref" data-id="concept_jmn_csn_zwb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jmn_csn_zwb-d16893e15995-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/ADLS-G2v2.html#concept_jmn_csn_zwb" id="concept_jmn_csn_zwb-d16893e15995-link">Azure Data Lake Storage Gen2</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_osx_qgz_xhb-d16893e16287" class="topicref" data-id="concept_osx_qgz_xhb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_osx_qgz_xhb-d16893e16287-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/ADLS-G2.html#concept_osx_qgz_xhb" id="concept_osx_qgz_xhb-d16893e16287-link">Azure Data Lake Storage Gen2 (Legacy)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_c1z_15q_1bb-d16893e16836" class="topicref" data-id="concept_c1z_15q_1bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_c1z_15q_1bb-d16893e16836-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AzureEventHub.html#concept_c1z_15q_1bb" id="concept_c1z_15q_1bb-d16893e16836-link">Azure IoT/Event Hub Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wfy_ghn_sz-d16893e16970" class="topicref" data-id="concept_wfy_ghn_sz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wfy_ghn_sz-d16893e16970-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/CoAPServer.html#concept_wfy_ghn_sz" id="concept_wfy_ghn_sz-d16893e16970-link">CoAP Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nsz_mnr_2jb-d16893e17114" class="topicref" data-id="concept_nsz_mnr_2jb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nsz_mnr_2jb-d16893e17114-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/CronScheduler.html#concept_nsz_mnr_2jb" id="concept_nsz_mnr_2jb-d16893e17114-link">Cron Scheduler</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wqr_cjc_fzb-d16893e17204" class="topicref" data-id="concept_wqr_cjc_fzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wqr_cjc_fzb-d16893e17204-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Couchbase.html#concept_wqr_cjc_fzb" id="concept_wqr_cjc_fzb-d16893e17204-link">Couchbase</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qcq_54n_jq-d16893e17360" class="topicref" data-id="concept_qcq_54n_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qcq_54n_jq-d16893e17360-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Directory.html#concept_qcq_54n_jq" id="concept_qcq_54n_jq-d16893e17360-link">Directory</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_f1q_vpm_2z-d16893e17732" class="topicref" data-id="concept_f1q_vpm_2z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_f1q_vpm_2z-d16893e17732-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Elasticsearch.html#concept_f1q_vpm_2z" id="concept_f1q_vpm_2z-d16893e17732-link">Elasticsearch </a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_n1y_qyp_5q-d16893e17922" class="topicref" data-id="concept_n1y_qyp_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_n1y_qyp_5q-d16893e17922-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/FileTail.html#concept_n1y_qyp_5q" id="concept_n1y_qyp_5q-d16893e17922-link">File Tail</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cg3_y3v_q1b-d16893e18251" class="topicref" data-id="concept_cg3_y3v_q1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cg3_y3v_q1b-d16893e18251-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/BigQuery.html#concept_cg3_y3v_q1b" id="concept_cg3_y3v_q1b-d16893e18251-link">Google BigQuery</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_iyd_wql_nbb-d16893e18415" class="topicref" data-id="concept_iyd_wql_nbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_iyd_wql_nbb-d16893e18415-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/GCS.html#concept_iyd_wql_nbb" id="concept_iyd_wql_nbb-d16893e18415-link">Google Cloud Storage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pjw_qtl_r1b-d16893e18593" class="topicref" data-id="concept_pjw_qtl_r1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pjw_qtl_r1b-d16893e18593-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PubSub.html#concept_pjw_qtl_r1b" id="concept_pjw_qtl_r1b-d16893e18593-link">Google Pub/Sub Subscriber</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_chr_zjj_l3b-d16893e18735" class="topicref" data-id="concept_chr_zjj_l3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_chr_zjj_l3b-d16893e18735-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/GroovyScripting.html#concept_chr_zjj_l3b" id="concept_chr_zjj_l3b-d16893e18735-link">Groovy Scripting</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yp1_4zs_yfb-d16893e18980" class="topicref" data-id="concept_yp1_4zs_yfb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yp1_4zs_yfb-d16893e18980-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/gRPCClient.html#concept_yp1_4zs_yfb" id="concept_yp1_4zs_yfb-d16893e18980-link">gRPC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_lw2_tnm_vs-d16893e19098" class="topicref" data-id="concept_lw2_tnm_vs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_lw2_tnm_vs-d16893e19098-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HadoopFS-origin.html#concept_lw2_tnm_vs" id="concept_lw2_tnm_vs-d16893e19098-link">Hadoop FS (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_djz_pdm_hdb-d16893e19313" class="topicref" data-id="concept_djz_pdm_hdb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_djz_pdm_hdb-d16893e19313-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HDFSStandalone.html#concept_djz_pdm_hdb" id="concept_djz_pdm_hdb-d16893e19313-link">Hadoop FS Standalone</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wk4_bjz_5r-d16893e19947" class="topicref" data-id="concept_wk4_bjz_5r" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wk4_bjz_5r-d16893e19947-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HTTPClient.html#concept_wk4_bjz_5r" id="concept_wk4_bjz_5r-d16893e19947-link">HTTP Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_s2p_5hb_4y-d16893e20461" class="topicref" data-id="concept_s2p_5hb_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_s2p_5hb_4y-d16893e20461-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HTTPServer.html#concept_s2p_5hb_4y" id="concept_s2p_5hb_4y-d16893e20461-link">HTTP Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="true" class="active"><div data-tocid="concept_kn5_bvt_m3b-d16893e20645" class="topicref" data-id="concept_kn5_bvt_m3b" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_kn5_bvt_m3b-d16893e20645-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_kn5_bvt_m3b" id="concept_kn5_bvt_m3b-d16893e20645-link">JavaScript Scripting</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="concept_nqx_r3p_p3b-d16893e20669" class="topicref" data-id="concept_nqx_r3p_p3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_nqx_r3p_p3b" id="concept_nqx_r3p_p3b-d16893e20669-link">Scripting Objects</a></div></div></li><li role="treeitem"><div data-tocid="concept_pmv_424_p3b-d16893e20691" class="topicref" data-id="concept_pmv_424_p3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_pmv_424_p3b" id="concept_pmv_424_p3b-d16893e20691-link">Multithreaded Processing</a></div></div></li><li role="treeitem"><div data-tocid="concept_ew4_y5h_p3b-d16893e20713" class="topicref" data-id="concept_ew4_y5h_p3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_ew4_y5h_p3b" id="concept_ew4_y5h_p3b-d16893e20713-link">Accessing Record Details</a></div></div></li><li role="treeitem"><div data-tocid="concept_dtt_bkn_p3b-d16893e20735" class="topicref" data-id="concept_dtt_bkn_p3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_dtt_bkn_p3b" id="concept_dtt_bkn_p3b-d16893e20735-link">Type Handling</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jgc_tf3_p3b-d16893e20757" class="topicref" data-id="concept_jgc_tf3_p3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jgc_tf3_p3b-d16893e20757-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_jgc_tf3_p3b" id="concept_jgc_tf3_p3b-d16893e20757-link">Event Generation</a></div></div></li><li role="treeitem"><div data-tocid="concept_ty1_t13_p3b-d16893e20801" class="topicref" data-id="concept_ty1_t13_p3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_ty1_t13_p3b" id="concept_ty1_t13_p3b-d16893e20801-link">Record Header Attributes</a></div></div></li><li role="treeitem"><div data-tocid="concept_crz_j5h_p3b-d16893e20823" class="topicref" data-id="concept_crz_j5h_p3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_crz_j5h_p3b" id="concept_crz_j5h_p3b-d16893e20823-link">Calling External Java Code</a><div class="wh-tooltip"><p class="shortdesc">You can call external Java code from the JavaScript Scripting origin. Simply install         the external Java library to make it available to the origin. Then, call the external Java         code from the script that you develop for the origin. </p></div></div></div></li><li role="treeitem"><div data-tocid="task_hnz_nnj_l3b-d16893e20848" class="topicref" data-id="task_hnz_nnj_l3b" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#task_hnz_nnj_l3b" id="task_hnz_nnj_l3b-d16893e20848-link">Configuring a JavaScript Scripting Origin</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zp3_wnw_4y-d16893e20872" class="topicref" data-id="concept_zp3_wnw_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zp3_wnw_4y-d16893e20872-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MultiTableJDBCConsumer.html#concept_zp3_wnw_4y" id="concept_zp3_wnw_4y-d16893e20872-link">JDBC Multitable Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qhf_hjr_bs-d16893e21646" class="topicref" data-id="concept_qhf_hjr_bs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qhf_hjr_bs-d16893e21646-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JDBCConsumer.html#concept_qhf_hjr_bs" id="concept_qhf_hjr_bs-d16893e21646-link">JDBC Query Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ywk_rq3_qbc-d16893e22216" class="topicref" data-id="concept_ywk_rq3_qbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ywk_rq3_qbc-d16893e22216-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Jira.html#concept_ywk_rq3_qbc" id="concept_ywk_rq3_qbc-d16893e22216-link">Jira</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rhh_4nj_dt-d16893e22336" class="topicref" data-id="concept_rhh_4nj_dt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rhh_4nj_dt-d16893e22336-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JMS.html#concept_rhh_4nj_dt" id="concept_rhh_4nj_dt-d16893e22336-link">JMS Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fxz_35t_m3b-d16893e22495" class="topicref" data-id="concept_fxz_35t_m3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fxz_35t_m3b-d16893e22495-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JythonScripting.html#concept_fxz_35t_m3b" id="concept_fxz_35t_m3b-d16893e22495-link">Jython Scripting</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_msz_wnr_5q-d16893e22744" class="topicref" data-id="concept_msz_wnr_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_msz_wnr_5q-d16893e22744-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/KConsumer.html#concept_msz_wnr_5q" id="concept_msz_wnr_5q-d16893e22744-link">Kafka Consumer (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ccs_fn4_x1b-d16893e22908" class="topicref" data-id="concept_ccs_fn4_x1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ccs_fn4_x1b-d16893e22908-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/KafkaMultiConsumer.html#concept_ccs_fn4_x1b" id="concept_ccs_fn4_x1b-d16893e22908-link">Kafka Multitopic Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_anh_4y3_yr-d16893e23093" class="topicref" data-id="concept_anh_4y3_yr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_anh_4y3_yr-d16893e23093-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/KinConsumer.html#concept_anh_4y3_yr" id="concept_anh_4y3_yr-d16893e23093-link">Kinesis Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qwj_5vm_pbb-d16893e23299" class="topicref" data-id="concept_qwj_5vm_pbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qwj_5vm_pbb-d16893e23299-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRdbCDC.html#concept_qwj_5vm_pbb" id="concept_qwj_5vm_pbb-d16893e23299-link">MapR DB CDC</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ywh_k15_3y-d16893e23433" class="topicref" data-id="concept_ywh_k15_3y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ywh_k15_3y-d16893e23433-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRDBJSON.html#concept_ywh_k15_3y" id="concept_ywh_k15_3y-d16893e23433-link">MapR DB JSON</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_psz_db4_lx-d16893e23504" class="topicref" data-id="concept_psz_db4_lx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_psz_db4_lx-d16893e23504-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRFS.html#concept_psz_db4_lx" id="concept_psz_db4_lx-d16893e23504-link">MapR FS (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_b43_3qc_mdb-d16893e23678" class="topicref" data-id="concept_b43_3qc_mdb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_b43_3qc_mdb-d16893e23678-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRFSStandalone.html#concept_b43_3qc_mdb" id="concept_b43_3qc_mdb-d16893e23678-link">MapR FS Standalone</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hvd_hww_lbb-d16893e24077" class="topicref" data-id="concept_hvd_hww_lbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hvd_hww_lbb-d16893e24077-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRStreamsMultiConsumer.html#concept_hvd_hww_lbb" id="concept_hvd_hww_lbb-d16893e24077-link">MapR Multitopic Streams Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cvy_xsf_2v-d16893e24258" class="topicref" data-id="concept_cvy_xsf_2v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cvy_xsf_2v-d16893e24258-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRStreamsCons.html#concept_cvy_xsf_2v" id="concept_cvy_xsf_2v-d16893e24258-link">MapR Streams Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_bk4_2rs_ns-d16893e24398" class="topicref" data-id="concept_bk4_2rs_ns" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_bk4_2rs_ns-d16893e24398-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDB.html#concept_bk4_2rs_ns" id="concept_bk4_2rs_ns-d16893e24398-link">MongoDB</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_vcz_zkw_m5b-d16893e24598" class="topicref" data-id="concept_vcz_zkw_m5b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_vcz_zkw_m5b-d16893e24598-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDBAtlas.html#concept_vcz_zkw_m5b" id="concept_vcz_zkw_m5b-d16893e24598-link">MongoDB Atlas</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_u4n_g2b_jzb-d16893e24876" class="topicref" data-id="concept_u4n_g2b_jzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_u4n_g2b_jzb-d16893e24876-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDBAtlasCDC.html#concept_u4n_g2b_jzb" id="concept_u4n_g2b_jzb-d16893e24876-link">MongoDB Atlas CDC</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mjn_yqw_4y-d16893e25084" class="topicref" data-id="concept_mjn_yqw_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mjn_yqw_4y-d16893e25084-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDBOplog.html#concept_mjn_yqw_4y" id="concept_mjn_yqw_4y-d16893e25084-link">MongoDB Oplog</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ukz_3vt_lz-d16893e25263" class="topicref" data-id="concept_ukz_3vt_lz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ukz_3vt_lz-d16893e25263-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MQTTSubscriber.html#concept_ukz_3vt_lz" id="concept_ukz_3vt_lz-d16893e25263-link">MQTT Subscriber</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kqg_1yh_xx-d16893e25400" class="topicref" data-id="concept_kqg_1yh_xx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kqg_1yh_xx-d16893e25400-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MySQLBinaryLog.html#concept_kqg_1yh_xx" id="concept_kqg_1yh_xx-d16893e25400-link">MySQL Binary Log</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ynn_vdb_p3b-d16893e25681" class="topicref" data-id="concept_ynn_vdb_p3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ynn_vdb_p3b-d16893e25681-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/NiFi.html#concept_ynn_vdb_p3b" id="concept_ynn_vdb_p3b-d16893e25681-link">NiFi HTTP Server (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_dsr_xmw_1s-d16893e25727" class="topicref" data-id="concept_dsr_xmw_1s" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_dsr_xmw_1s-d16893e25727-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Omniture.html#concept_dsr_xmw_1s" id="concept_dsr_xmw_1s-d16893e25727-link">Omniture (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nmf_1ly_f1b-d16893e25773" class="topicref" data-id="concept_nmf_1ly_f1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nmf_1ly_f1b-d16893e25773-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OPCUAClient.html#concept_nmf_1ly_f1b" id="concept_nmf_1ly_f1b-d16893e25773-link">OPC UA Client </a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_lnz_kzp_zgb-d16893e25887" class="topicref" data-id="concept_lnz_kzp_zgb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_lnz_kzp_zgb-d16893e25887-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleBulk.html#concept_lnz_kzp_zgb" id="concept_lnz_kzp_zgb-d16893e25887-link">Oracle Bulkload</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_bv1_kwt_pbc-d16893e26121" class="topicref" data-id="concept_bv1_kwt_pbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_bv1_kwt_pbc-d16893e26121-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_bv1_kwt_pbc" id="concept_bv1_kwt_pbc-d16893e26121-link">Oracle Multitable Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_whr_2w2_bwb-d16893e26812" class="topicref" data-id="concept_whr_2w2_bwb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_whr_2w2_bwb-d16893e26812-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleC.html#concept_whr_2w2_bwb" id="concept_whr_2w2_bwb-d16893e26812-link">Oracle CDC</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rs5_hjj_tw-d16893e27509" class="topicref" data-id="concept_rs5_hjj_tw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rs5_hjj_tw-d16893e27509-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleCDC.html#concept_rs5_hjj_tw" id="concept_rs5_hjj_tw-d16893e27509-link">Oracle CDC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cfs_4m4_n2b-d16893e28270" class="topicref" data-id="concept_cfs_4m4_n2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cfs_4m4_n2b-d16893e28270-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PostgreSQL.html#concept_cfs_4m4_n2b" id="concept_cfs_4m4_n2b-d16893e28270-link">PostgreSQL CDC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="PulsarMultiConsumer-d16893e28573" class="topicref" data-id="PulsarMultiConsumer" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action PulsarMultiConsumer-d16893e28573-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PulsarConsumerV2.html#PulsarMultiConsumer" id="PulsarMultiConsumer-d16893e28573-link">Pulsar Consumer</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_o2b_1pc_r2b-d16893e28883" class="topicref" data-id="concept_o2b_1pc_r2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_o2b_1pc_r2b-d16893e28883-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PulsarConsumer.html#concept_o2b_1pc_r2b" id="concept_o2b_1pc_r2b-d16893e28883-link">Pulsar Consumer (Legacy)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_dyg_lq1_h5-d16893e29195" class="topicref" data-id="concept_dyg_lq1_h5" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_dyg_lq1_h5-d16893e29195-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/RabbitMQ.html#concept_dyg_lq1_h5" id="concept_dyg_lq1_h5-d16893e29195-link">RabbitMQ Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_plr_t3v_jw-d16893e29310" class="topicref" data-id="concept_plr_t3v_jw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_plr_t3v_jw-d16893e29310-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Redis.html#concept_plr_t3v_jw" id="concept_plr_t3v_jw-d16893e29310-link">Redis Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hfg_2sn_p2b-d16893e29403" class="topicref" data-id="concept_hfg_2sn_p2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hfg_2sn_p2b-d16893e29403-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/RESTService.html#concept_hfg_2sn_p2b" id="concept_hfg_2sn_p2b-d16893e29403-link">REST Service </a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_odf_vr3_rx-d16893e29750" class="topicref" data-id="concept_odf_vr3_rx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_odf_vr3_rx-d16893e29750-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Salesforce.html#concept_odf_vr3_rx" id="concept_odf_vr3_rx-d16893e29750-link">Salesforce</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yk2_tcw_ysb-d16893e30273" class="topicref" data-id="concept_yk2_tcw_ysb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yk2_tcw_ysb-d16893e30273-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SalesforceBAPI2.html#concept_yk2_tcw_ysb" id="concept_yk2_tcw_ysb-d16893e30273-link">Salesforce Bulk API 2.0</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pmt_ml3_3mb-d16893e30605" class="topicref" data-id="concept_pmt_ml3_3mb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pmt_ml3_3mb-d16893e30605-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SAPHana.html#concept_pmt_ml3_3mb" id="concept_pmt_ml3_3mb-d16893e30605-link">SAP HANA Query Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agb_5c1_ct-d16893e30963" class="topicref" data-id="concept_agb_5c1_ct" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agb_5c1_ct-d16893e30963-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SDC_RPCorigin.html#concept_agb_5c1_ct" id="concept_agb_5c1_ct-d16893e30963-link">SDC RPC (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ic5_bzd_5v-d16893e31009" class="topicref" data-id="concept_ic5_bzd_5v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ic5_bzd_5v-d16893e31009-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SFTP.html#concept_ic5_bzd_5v" id="concept_ic5_bzd_5v-d16893e31009-link">SFTP/FTP/FTPS Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_svf_4zr_3xb-d16893e31260" class="topicref" data-id="concept_svf_4zr_3xb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_svf_4zr_3xb-d16893e31260-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SnowflakeBulk.html#concept_svf_4zr_3xb" id="concept_svf_4zr_3xb-d16893e31260-link">Snowflake Bulk</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="SQLServerBDCMultitable-d16893e31552" class="topicref" data-id="SQLServerBDCMultitable" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action SQLServerBDCMultitable-d16893e31552-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SQLServerBDCMultitable.html#SQLServerBDCMultitable" id="SQLServerBDCMultitable-d16893e31552-link">SQL Server 2019 BDC Multitable Consumer (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ut3_ywc_v1b-d16893e32229" class="topicref" data-id="concept_ut3_ywc_v1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ut3_ywc_v1b-d16893e32229-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SQLServerCDC.html#concept_ut3_ywc_v1b" id="concept_ut3_ywc_v1b-d16893e32229-link">SQL Server CDC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ewq_b2s_r1b-d16893e32613" class="topicref" data-id="concept_ewq_b2s_r1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ewq_b2s_r1b-d16893e32613-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SQLServerChange.html#concept_ewq_b2s_r1b" id="concept_ewq_b2s_r1b-d16893e32613-link">SQL Server Change Tracking</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ufc_53w_wlb-d16893e32972" class="topicref" data-id="concept_ufc_53w_wlb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ufc_53w_wlb-d16893e32972-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/StartJob.html#concept_ufc_53w_wlb" id="concept_ufc_53w_wlb-d16893e32972-link">Start Jobs</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_h1l_xpr_2jb-d16893e33106" class="topicref" data-id="concept_h1l_xpr_2jb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_h1l_xpr_2jb-d16893e33106-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/StartPipe.html#concept_h1l_xpr_2jb" id="concept_h1l_xpr_2jb-d16893e33106-link">Start Pipelines (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_gzy_gmv_32b-d16893e33200" class="topicref" data-id="concept_gzy_gmv_32b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_gzy_gmv_32b-d16893e33200-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SystemMetrics.html#concept_gzy_gmv_32b" id="concept_gzy_gmv_32b-d16893e33200-link">System Metrics</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ppm_xb1_4z-d16893e33296" class="topicref" data-id="concept_ppm_xb1_4z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ppm_xb1_4z-d16893e33296-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/TCPServer.html#concept_ppm_xb1_4z" id="concept_ppm_xb1_4z-d16893e33296-link">TCP Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zp3_wnw_4y-d16893e33474" class="topicref" data-id="concept_zp3_wnw_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zp3_wnw_4y-d16893e33474-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Teradata.html#concept_zp3_wnw_4y" id="concept_zp3_wnw_4y-d16893e33474-link">Teradata Consumer (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wng_g5f_5bb-d16893e34151" class="topicref" data-id="concept_wng_g5f_5bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wng_g5f_5bb-d16893e34151-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/UDPMulti.html#concept_wng_g5f_5bb" id="concept_wng_g5f_5bb-d16893e34151-link">UDP Multithreaded Source</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rst_2y5_1s-d16893e34307" class="topicref" data-id="concept_rst_2y5_1s" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rst_2y5_1s-d16893e34307-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/UDP.html#concept_rst_2y5_1s" id="concept_rst_2y5_1s-d16893e34307-link">UDP Source</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jd3_qxg_51c-d16893e34397" class="topicref" data-id="concept_jd3_qxg_51c" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jd3_qxg_51c-d16893e34397-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WebClientO.html#concept_jd3_qxg_51c" id="concept_jd3_qxg_51c-d16893e34397-link">Web Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_unk_nzk_fbb-d16893e34782" class="topicref" data-id="concept_unk_nzk_fbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_unk_nzk_fbb-d16893e34782-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WebSocketClient.html#concept_unk_nzk_fbb" id="concept_unk_nzk_fbb-d16893e34782-link">WebSocket Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_u2r_gpc_3z-d16893e34919" class="topicref" data-id="concept_u2r_gpc_3z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_u2r_gpc_3z-d16893e34919-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WebSocketServer.html#concept_u2r_gpc_3z" id="concept_u2r_gpc_3z-d16893e34919-link">WebSocket Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agf_5jv_sbb-d16893e35128" class="topicref" data-id="concept_agf_5jv_sbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agf_5jv_sbb-d16893e35128-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WindowsLog.html#concept_agf_5jv_sbb" id="concept_agf_5jv_sbb-d16893e35128-link">Windows Event Log</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yjl_nc5_jq-d16893e35197" class="topicref" data-id="concept_yjl_nc5_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yjl_nc5_jq-d16893e35197-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Processors/Processors_title.html" id="concept_yjl_nc5_jq-d16893e35197-link">Processors</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agj_cfj_br-d16893e44037" class="topicref" data-id="concept_agj_cfj_br" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agj_cfj_br-d16893e44037-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Destinations/Destinations-title.html" id="concept_agj_cfj_br-d16893e44037-link">Destinations</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_umc_1lk_fx-d16893e56072" class="topicref" data-id="concept_umc_1lk_fx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_umc_1lk_fx-d16893e56072-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Executors-title.html" id="concept_umc_1lk_fx-d16893e56072-link">Executors</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xxd_f5r_kx-d16893e59696" class="topicref" data-id="concept_xxd_f5r_kx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xxd_f5r_kx-d16893e59696-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Event_Handling/EventFramework-Title.html#concept_xxd_f5r_kx" id="concept_xxd_f5r_kx-d16893e59696-link">Dataflow Triggers</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zq5_pb4_flb-d16893e60134" class="topicref" data-id="concept_zq5_pb4_flb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zq5_pb4_flb-d16893e60134-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Solutions/Solutions-title.html" id="concept_zq5_pb4_flb-d16893e60134-link">Solutions</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ugp_kwf_xw-d16893e61337" class="topicref" data-id="concept_ugp_kwf_xw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ugp_kwf_xw-d16893e61337-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/DPM/DPM_title.html" id="concept_ugp_kwf_xw-d16893e61337-link">StreamSets Control Hub</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fyf_gkq_4bb-d16893e62693" class="topicref" data-id="concept_fyf_gkq_4bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fyf_gkq_4bb-d16893e62693-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Edge_Mode/EdgePipelines_title.html" id="concept_fyf_gkq_4bb-d16893e62693-link"><span class="ph">StreamSets Data Collector Edge</span></a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wwq_gxc_py-d16893e63980" class="topicref" data-id="concept_wwq_gxc_py" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wwq_gxc_py-d16893e63980-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Multithreaded_Pipelines/MultithreadedPipelines.html#concept_wwq_gxc_py" id="concept_wwq_gxc_py-d16893e63980-link">Multithreaded Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_gzw_tdm_p2b-d16893e64187" class="topicref" data-id="concept_gzw_tdm_p2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_gzw_tdm_p2b-d16893e64187-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Microservice/Microservice_Title.html#concept_gzw_tdm_p2b" id="concept_gzw_tdm_p2b-d16893e64187-link">Microservice Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="Orchestrators_Title-d16893e64348" class="topicref" data-id="Orchestrators_Title" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action Orchestrators_Title-d16893e64348-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Orchestration_Pipelines/OrchestrationPipelines_Title.html#Orchestrators_Title" id="Orchestrators_Title-d16893e64348-link">Orchestration Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wr1_ktz_bt-d16893e64489" class="topicref" data-id="concept_wr1_ktz_bt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wr1_ktz_bt-d16893e64489-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/RPC_Pipelines/SDC_RPCpipelines_title.html#concept_wr1_ktz_bt" id="concept_wr1_ktz_bt-d16893e64489-link">SDC RPC Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fpz_5r4_vs-d16893e64679" class="topicref" data-id="concept_fpz_5r4_vs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fpz_5r4_vs-d16893e64679-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Cluster_Mode/ClusterPipelines_title.html" id="concept_fpz_5r4_vs-d16893e64679-link">Cluster Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jjk_23z_sq-d16893e65172" class="topicref" data-id="concept_jjk_23z_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jjk_23z_sq-d16893e65172-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Data_Preview/DataPreview_Title.html#concept_jjk_23z_sq" id="concept_jjk_23z_sq-d16893e65172-link">Data Preview</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pgk_brx_rr-d16893e65458" class="topicref" data-id="concept_pgk_brx_rr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pgk_brx_rr-d16893e65458-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Alerts/RulesAlerts_title.html#concept_pgk_brx_rr" id="concept_pgk_brx_rr-d16893e65458-link">Rules and Alerts</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_asx_fdz_sq-d16893e65960" class="topicref" data-id="concept_asx_fdz_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_asx_fdz_sq-d16893e65960-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Monitoring/PipelineMonitoring_title.html#concept_asx_fdz_sq" id="concept_asx_fdz_sq-d16893e65960-link">Pipeline Monitoring</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_o3l_dtr_5q-d16893e66304" class="topicref" data-id="concept_o3l_dtr_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_o3l_dtr_5q-d16893e66304-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Maintenance/PipelineMaintenance_title.html#concept_o3l_dtr_5q" id="concept_o3l_dtr_5q-d16893e66304-link">Pipeline Maintenance</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yms_ftm_sq-d16893e66768" class="topicref" data-id="concept_yms_ftm_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yms_ftm_sq-d16893e66768-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Administration/Administration_title.html#concept_yms_ftm_sq" id="concept_yms_ftm_sq-d16893e66768-link">Administration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nls_w1r_ks-d16893e67508" class="topicref" data-id="concept_nls_w1r_ks" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nls_w1r_ks-d16893e67508-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Tutorial/Tutorial-title.html" id="concept_nls_w1r_ks-d16893e67508-link">Tutorial</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_sh3_frm_tq-d16893e68001" class="topicref" data-id="concept_sh3_frm_tq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_sh3_frm_tq-d16893e68001-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Troubleshooting/Troubleshooting_title.html#concept_sh3_frm_tq" id="concept_sh3_frm_tq-d16893e68001-link">Troubleshooting</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xbx_rs1_tq-d16893e68798" class="topicref" data-id="concept_xbx_rs1_tq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xbx_rs1_tq-d16893e68798-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Glossary/Glossary_title.html#concept_xbx_rs1_tq" id="concept_xbx_rs1_tq-d16893e68798-link">Glossary</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jn1_nzb_kv-d16893e68843" class="topicref" data-id="concept_jn1_nzb_kv" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jn1_nzb_kv-d16893e68843-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-DataFormats/DataFormat_Title.html#concept_jn1_nzb_kv" id="concept_jn1_nzb_kv-d16893e68843-link">Data Formats by Stage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pvm_yt3_wq-d16893e68958" class="topicref" data-id="concept_pvm_yt3_wq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pvm_yt3_wq-d16893e68958-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Expression_Language/ExpressionLanguage_title.html" id="concept_pvm_yt3_wq-d16893e68958-link">Expression Language</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_vcj_1ws_js-d16893e69669" class="topicref" data-id="concept_vcj_1ws_js" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_vcj_1ws_js-d16893e69669-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-RegEx/RegEx-Title.html#concept_vcj_1ws_js" id="concept_vcj_1ws_js-d16893e69669-link">Regular Expressions</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_chv_vmj_wr-d16893e69787" class="topicref" data-id="concept_chv_vmj_wr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_chv_vmj_wr-d16893e69787-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-GrokPatterns/GrokPatterns_title.html#concept_chv_vmj_wr" id="concept_chv_vmj_wr-d16893e69787-link">Grok Patterns</a></div></div></li></ul></div>
                        

</div>
</nav>
                    


                    
                    <div id="wh_topic_body" class="col-lg-7 col-md-9 col-sm-12">
<button id="wh_close_publication_toc_button" class="close-toc-button d-none" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc" aria-expanded="true"><span class="close-toc-icon-container"><span class="close-toc-icon"></span></span></button><button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true"><span class="close-toc-icon-container"><span class="close-toc-icon"></span></span></button>

                        
<div class=" wh_topic_content body "><main role="main"><article class="" role="article" aria-labelledby="ariaid-title1"><article class="nested0" aria-labelledby="ariaid-title1" id="concept_kn5_bvt_m3b">
    <h1 class="- topic/title title topictitle1" id="ariaid-title1">JavaScript Scripting</h1>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p"><div class="simpletable-container"><table class="- topic/simpletable simpletable frame-none" id="concept_kn5_bvt_m3b__simpletable_gxj_hjb_sgb" data-ofbid="concept_kn5_bvt_m3b__simpletable_gxj_hjb_sgb"><colgroup><col style="width:100%"/></colgroup><tbody><tr class="- topic/strow strow">
                <td class="- topic/stentry stentry"><a class="- topic/xref xref" href="../Pipeline_Configuration/ProductIcons_Doc.html#concept_mjg_ly5_pgb">Supported pipeline types:</a><ul class="- topic/ul ul" id="concept_kn5_bvt_m3b__ul_s3x_b2m_rgb" data-ofbid="concept_kn5_bvt_m3b__ul_s3x_b2m_rgb">
                        <li class="- topic/li li">
                            <p class="- topic/p p"><img class="- topic/image image" id="concept_kn5_bvt_m3b__image_t3x_b2m_rgb" src="../../../reusable-content/datacollector/reusable-topics/../../shared-graphics/icon-SDC.png" height="21" width="21"/> Data Collector</p>
                        </li>
                    </ul></td>
            </tr></tbody></table></div>The JavaScript Scripting origin runs a
            JavaScript script to create <span class="- topic/ph ph">Data Collector</span>
            records. The JavaScript Scripting origin supports <span class="- topic/ph ph">Java version
                8u40 and later and ECMAScript version 5.1.</span> The origin <span class="- topic/ph ph">runs on the Nashorn JavaScript
                engine.</span></div>
        <div class="- topic/p p">The script runs for the duration of the
            pipeline. The origin can support a complex multithreaded script or a simple
            single-threaded script. The script can act on script parameters configured in the stage.
            The basic flow of a script must do the following:<ul class="- topic/ul ul" id="concept_kn5_bvt_m3b__ul_jzn_1l5_m3b" data-ofbid="concept_kn5_bvt_m3b__ul_jzn_1l5_m3b">
                <li class="- topic/li li">Create threads if supporting multithreaded processing</li>
                <li class="- topic/li li">Create batches</li>
                <li class="- topic/li li">Create records</li>
                <li class="- topic/li li">Add the records to a batch</li>
                <li class="- topic/li li">Process the batch</li>
                <li class="- topic/li li">Stop when the pipeline stops</li>
            </ul></div><p class="- topic/p p">The script must handle all necessary processing, such as generating events, sending
            errors for handling, and stopping when users stop the pipeline or when there is no more
            data. <span class="- topic/ph ph">You can call external Java code from the script.</span>
        </p><p class="- topic/p p">To handle restarts, the script must maintain an offset to track where the origin stopped
            and should restart. For the offset, the script requires a key, called an entity,
            associated with a unique value. For multithreaded processing, the entity must identify
            the partition of data processed by each thread. The method that processes batches saves
            an offset value for each entity. </p><p class="- topic/p p">For example, suppose your script processes data about U.S. states, using an API to read
            data with a URL of the form <code class="+ topic/ph pr-d/codeph ph codeph">../&lt;state&gt;&amp;page=&lt;number&gt;</code>. In the
            script, each thread reads data from one state until finished with that state. You can
            set the entity to the state and the offset to the page number. </p><p class="- topic/p p">You can <a class="- topic/xref xref" href="../Pipeline_Maintenance/ResettingTheOrigin.html#task_hdg_j1s_5q">reset the origin</a> to process all available
            data.</p><p class="- topic/p p">The origin <span class="- topic/ph ph">provides extensive sample code
                that you can use to develop your script. </span></p><p class="- topic/p p">When configuring the origin, you enter the script
            and the inputs required, including the batch size and number of threads, along with any
            script parameters used in the script. </p>
    </div>
<article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title2" id="concept_nqx_r3p_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title2">Scripting Objects</h2>
    <div class="- topic/body concept/conbody body conbody">
        <div class="- topic/p p">Scripts in the JavaScript Scripting
            origin can use the following objects: <dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">record</dt>
                    <dd class="- topic/dd dd">An object that contains fields and values to
                    process. Create new <code class="+ topic/ph pr-d/codeph ph codeph">record</code> objects with the
                        <code class="+ topic/ph pr-d/codeph ph codeph">sdc.createRecord(&lt;String record ID&gt;)</code> method. The methods
                    available to the object depend on the origin configuration. You can configure
                    the record type to be native objects or <span class="- topic/ph ph">Data Collector</span>
                    records.</dd>
                    <dd class="- topic/dd dd ddexpand"> For more information see <a class="- topic/xref xref" href="JavaScriptScripting.html#concept_ew4_y5h_p3b">Accessing Record Details</a>.</dd>
                
                
                <dt class="- topic/dt dt dlterm">batch</dt>
                <dd class="- topic/dd dd">An object that collects records to process together. Create new
                        <code class="+ topic/ph pr-d/codeph ph codeph">batch</code> objects with the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.createBatch()</code>
                    method. The object includes the following methods: <ul class="- topic/ul ul" id="concept_nqx_r3p_p3b__ul_p3y_m4b_ljb" data-ofbid="concept_nqx_r3p_p3b__ul_p3y_m4b_ljb">
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">add(&lt;record&gt;)</code> - Appends a record to the batch.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">add(&lt;record[]&gt;)</code> - Appends a list of records to the
                            batch.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">addError(&lt;record&gt;,&lt;String message&gt;)</code> - Appends an
                            error record to the batch. The appended error record contains the
                            associated error message.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">addEvent(&lt;event record&gt;)</code> - Appends an event to the
                            batch. Verify that the stage enables event generation before
                            implementing event methods.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">size()</code> - Returns the number of records in the
                            batch.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">process(&lt;String entity&gt;, &lt;String offset&gt;)</code> -
                            Processes the batch and commits the offset for the named entity.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">getSourceResponseRecords()</code> - After processing a batch,
                            retrieves any response records returned by downstream stages.</li>
                    </ul></dd>
            
                
                    <dt class="- topic/dt dt dlterm">log</dt>
                    <dd class="- topic/dd dd">An object that writes messages to the log4j log. Use
                            <code class="+ topic/ph pr-d/codeph ph codeph">sdc.log</code> to access the object configured for the stage.
                        The object includes methods that correspond to the level in the log file:
                            <ul class="- topic/ul ul" id="concept_nqx_r3p_p3b__ul_jpn_5bx_53b" data-ofbid="concept_nqx_r3p_p3b__ul_jpn_5bx_53b">
                            <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">info(&lt;message template&gt;, &lt;arguments&gt;...)</code></li>
                            <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">warn(&lt;message template&gt;, &lt;arguments&gt;...)</code></li>
                            <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">error(&lt;message template&gt;,
                                &lt;arguments&gt;...)</code></li>
                            <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">trace(&lt;message template&gt;,
                                &lt;arguments&gt;...)</code></li>
                        </ul><p class="- topic/p p">The message template can contain positional variables, indicated by
                            curly brackets: { }. When writing messages, the method replaces each
                            variable with the argument in the corresponding position - that is, the
                            method replaces the first { } occurrence with the first argument, and so
                            on.</p></dd>
                
                
                <dt class="- topic/dt dt dlterm">sdc</dt>
                <dd class="- topic/dd dd">A wrapper object that accesses the constants, methods, and objects available to
                    the user script. </dd>
                <dd class="- topic/dd dd ddexpand">The <code class="+ topic/ph pr-d/codeph ph codeph">sdc</code> object contains the following constants: <ul class="- topic/ul ul" id="concept_nqx_r3p_p3b__ul_obg_shr_l3b" data-ofbid="concept_nqx_r3p_p3b__ul_obg_shr_l3b">
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">lastOffsets</code> - Dictionary that contains the last-saved
                            offset for each entity. Use at the start of the script to read the last
                            value associated with a successfully processed batch.<div class="- topic/note note note note_note"><span class="note__title">Note:</span> The constant
                                does not update while the pipeline runs.</div></li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">batchSize</code> - Number of records to create in a single
                            batch. Configured on the Performance tab with the Batch Size
                            property.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">numThreads</code> - Number of threads to run simultaneously.
                            Configured on the Performance tab with the Number of Threads
                            property.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">userParams</code> - Dictionary that contains the script
                            parameters and values configured on the Advanced tab with the Parameters
                            in Script property.</li>
                    </ul></dd>
                <dd class="- topic/dd dd ddexpand">The <code class="+ topic/ph pr-d/codeph ph codeph">sdc</code> object contains the following methods:<ul class="- topic/ul ul" id="concept_nqx_r3p_p3b__ul_iz1_dnr_l3b" data-ofbid="concept_nqx_r3p_p3b__ul_iz1_dnr_l3b">
                        <li class="- topic/li li" id="concept_nqx_r3p_p3b__li_createBatch" data-ofbid="concept_nqx_r3p_p3b__li_createBatch"><code class="+ topic/ph pr-d/codeph ph codeph">createBatch()</code> - Returns a new
                            batch.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">createRecord(&lt;String record
                                    ID&gt;)</code> - Returns a new record with the passed ID. Pass a
                                string that uniquely identifies the record and includes enough
                                information to track the record source.</li>
                        <li class="- topic/li li" id="concept_nqx_r3p_p3b__li_isStopped" data-ofbid="concept_nqx_r3p_p3b__li_isStopped"><code class="+ topic/ph pr-d/codeph ph codeph">isStopped()</code> - Returns a Boolean value
                            that indicates whether the pipeline has been stopped.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">isPreview()</code> - Returns a Boolean
                                value that indicates whether the pipeline is in preview mode.</li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">getFieldNull(&lt;record&gt;, &lt;String
                                    field path&gt;)</code> - Returns one of the following: <ul class="- topic/ul ul" id="concept_nqx_r3p_p3b__ul_f2n_r5z_43b" data-ofbid="concept_nqx_r3p_p3b__ul_f2n_r5z_43b">
                                    <li class="- topic/li li">The value of the field at the specified path if the value is
                                        not null</li>
                                    <li class="- topic/li li">The null object defined for the field type, such as
                                            <code class="+ topic/ph pr-d/codeph ph codeph">NULL_INTEGER</code> or
                                            <code class="+ topic/ph pr-d/codeph ph codeph">NULL_STRING</code>, if the value is null</li>
                                    <li class="- topic/li li">The unassigned null object <code class="+ topic/ph pr-d/codeph ph codeph">NULL</code> if there is
                                        no field at the specified path</li>
                                </ul></li>
                        <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">createMap(&lt;Boolean list-map&gt;)</code>
                                - Returns a map for use as a field in a record. Pass
                                    <code class="+ topic/ph pr-d/codeph ph codeph">true</code> to create a list-map field, or
                                    <code class="+ topic/ph pr-d/codeph ph codeph">false</code> to create a map field.</li>
                        <li class="- topic/li li"><span class="- topic/ph ph" id="concept_nqx_r3p_p3b__ph-CreateEvent"><code class="+ topic/ph pr-d/codeph ph codeph">createEvent(&lt;String type&gt;, &lt;Integer
                                        version&gt;)</code> - Returns a new event record with the
                                    specified event type and version.</span> Verify that the stage
                                enables event generation before implementing event methods. </li>
                    </ul></dd>
            
            </dl>
        </div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title3" id="concept_pmv_424_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title3">Multithreaded Processing</h2>
    <div class="- topic/body concept/conbody body conbody">
        <p class="- topic/p p">The JavaScript Scripting origin can use
            multiple concurrent threads to process data based on the Number of Threads property. </p>
        <p class="- topic/p p">To enable multithreaded processing, write the
            script to create the configured number of threads. Each thread must create a batch and
            pass the batch to an available pipeline runner by calling the
                <code class="+ topic/ph pr-d/codeph ph codeph">batch.process(&lt;String entity&gt;, &lt;String offset&gt;)</code> method. <span class="- topic/ph ph">A pipeline runner is a <dfn class="- topic/term term">sourceless
                              pipeline instance</dfn> - an instance of the pipeline that includes
                        all of the processors, executors, and destinations in the pipeline and
                        handles all pipeline processing after the origin.</span>
        </p><p class="- topic/p p"><span class="- topic/ph ph"><span class="- topic/ph ph" id="concept_pmv_424_p3b__ph-MultiThread-partial">Each pipeline runner
                              processes one batch at a time, just like a pipeline that runs on a
                              single thread.</span> When the flow of data slows, the pipeline runners
                        wait idly until they are needed, generating an empty batch at regular
                        intervals. You can configure the Runner Idle Time pipeline property to
                        specify the interval or to opt out of empty batch generation.</span></p><p class="- topic/p p"><span class="- topic/ph ph"><span class="- topic/ph ph" id="concept_pmv_424_p3b__ph-MultiThread-OracleBulkbatch1">Multithreaded pipelines preserve the order of records within each
                              batch, just like a single-threaded pipeline. But since</span> batches
                              <span class="- topic/ph ph" id="concept_pmv_424_p3b__ph-MultiThread-OracleBulkbatch2">are processed by different
                              pipeline runners, the order that batches are written to destinations
                              is not ensured.</span></span></p><p class="- topic/p p">For example, suppose you write the script to use multiple threads to read files in the
            order of last-modified timestamp, and you configure the origin to use five threads. When
            you start the pipeline, <span class="- topic/ph ph">the origin creates five
                              threads, and <span class="- topic/ph ph">Data Collector</span>
                              creates a matching number of pipeline runners.</span>
        </p><p class="- topic/p p">The origin assigns a thread to each of the five oldest files. Each thread processes its
            assigned file, creating batches of data and passing each batch to a pipeline runner. </p><p class="- topic/p p">After a thread completes processing a file, the origin assigns the thread to the next
            file based on the last-modified timestamp, until all files are processed. </p><p class="- topic/p p">For more information about multithreaded
            pipelines, see <a class="- topic/xref xref" href="../Multithreaded_Pipelines/MultithreadedPipelines.html#concept_zpp_2xc_py">Multithreaded Pipeline Overview</a>.</p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title4" id="concept_ew4_y5h_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title4">Accessing Record Details</h2>
    <div class="- topic/body concept/conbody body conbody">
        
        <p class="- topic/p p">By default, you use native types from the scripting
            language to access records in scripts. However, with native types, you cannot easily
            access all the features of <span class="- topic/ph ph">Data Collector</span>
            records, such as field attributes. </p><p class="- topic/p p">To access records in scripts directly as <span class="- topic/ph ph">Data Collector</span>
            records, configure the stage to use the Data Collector Java API to process records in
            scripts by setting the Record Type advanced property to <code class="+ topic/ph pr-d/codeph ph codeph">Data Collector
                Records</code>. </p><p class="- topic/p p">In the script, reference the needed classes from
            the Java package <code class="+ topic/ph pr-d/codeph ph codeph">com.streamsets.pipeline.api</code> and then use the
            appropriate methods to access records and fields. With the <span class="- topic/ph ph">Data Collector</span>
            Java API, scripts can access all the features of <span class="- topic/ph ph">Data Collector</span>
            records. </p>
        <div class="- topic/p p">For example, include the following lines in the
            script to use the <span class="- topic/ph ph">Data Collector</span>
            Java API to do the following: <ul class="- topic/ul ul" id="concept_ew4_y5h_p3b__ul_uk5_svd_v3b" data-ofbid="concept_ew4_y5h_p3b__ul_uk5_svd_v3b">
                <li class="- topic/li li">Create a String field named <code class="+ topic/ph pr-d/codeph ph codeph">new</code> and set its value to
                        <code class="+ topic/ph pr-d/codeph ph codeph">new-value</code>. </li>
                <li class="- topic/li li">Update the existing field named <code class="+ topic/ph pr-d/codeph ph codeph">old</code> to set the value of the
                        <code class="+ topic/ph pr-d/codeph ph codeph">attr</code> attribute to <code class="+ topic/ph pr-d/codeph ph codeph">attr-value</code>.</li>
            </ul></div>
        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>var Field = Java.type('com.streamsets.pipeline.api.Field');
...
records[i].sdcRecord.set('/new', Field.create(Field.Type.STRING, 'new-value'));
records[i].sdcRecord.get('/old').setAttribute('attr', 'attr-value');
...</code></pre>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title5" id="concept_dtt_bkn_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title5">Type Handling</h2>
    <div class="- topic/body concept/conbody body conbody">
        <div class="- topic/p p"><span class="- topic/ph ph">Though JavaScript does not use type information when processing
                data, passing data to the rest of the pipeline requires data types. Note the
                following type information when working with the</span> JavaScript Scripting origin:<dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">Data type of null values</dt>
                    <dd class="- topic/dd dd">You can
                        associate null values with a data type. For example, if the script assigns a
                        null value to an Integer field, the field is returned to the pipeline as an
                        integer with a null value.</dd>
                    <dd class="- topic/dd dd ddexpand">Use constants in the JavaScript code to create a new field of a specific
                        data type with a null value. For example, you can create a new String field
                        with a null value by assigning the <code class="+ topic/ph pr-d/codeph ph codeph">NULL_STRING</code> type
                        constant to the field as
                        follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>records[i].value.new_field = sdc.NULL_STRING</code></pre></dd>
                
                
                    <dt class="- topic/dt dt dlterm">Date fields</dt>
                    <dd class="- topic/dd dd"><span class="- topic/ph ph">Use the String data
                            type to create a new field to store a date with a specific format. For
                            example, the following sample code creates a new String field that
                            stores the current date using the format
                            <code class="+ topic/ph pr-d/codeph ph codeph">YYYY-MM-dd</code>:</span><pre class="+ topic/pre pr-d/codeblock pre codeblock"><code> // Define a date object to record the current date
var date = new Date();
var curBatch = sdc.createBatch();

for(var i = 0; i &lt; records.length; i++) {
 try {
   // Create a string field to store the current date with the specified format
   records[i].value.date = date.getFullYear()+ "-" + date.getMonth() + "-" + date.getDate();
   // Add record to the current batch
   curBatch.add(record);
 } catch (e) {
   // Send record to error
   curBatch.addError(records[i], e.toString());
 }
}

// Process the current batch
curBatch.process(entityName, offset.toString());</code></pre></dd>
                
                
                    <dt class="- topic/dt dt dlterm">Values retain their original type</dt>
                    <dd class="- topic/dd dd">Values retain their original type regardless of whether a script modifies
                        the value.</dd>
                
            </dl></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title6" id="concept_jgc_tf3_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title6">Event Generation</h2>
    <div class="- topic/body concept/conbody body conbody">
        <p class="- topic/p p">You can use the JavaScript Scripting
            origin <span class="- topic/ph ph">to generate event records
                for an event stream. Enable event generation when you want the stage to generate an
                event record based on scripting logic. </span></p>
        <p class="- topic/p p"><span class="- topic/ph ph">As with any record, you can pass event records downstream to a
                destination for event storage or to any executor that can be configured to use the
                event. For more information about events and the event framework, see <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">Dataflow Triggers Overview</a>.</span>
        </p>
        <div class="- topic/p p">To generate events:<ol class="- topic/ol ol" id="concept_jgc_tf3_p3b__ol_dwt_rrb_5jb" data-ofbid="concept_jgc_tf3_p3b__ol_dwt_rrb_5jb">
                <li class="- topic/li li">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">General</span> tab, select the <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Produce
                        Events</span> property.<p class="- topic/p p">This enables the event output stream for use.
                    </p></li>
                <li class="- topic/li li">Include <span class="- topic/ph ph">both of the following methods in the script:</span><ul class="- topic/ul ul" id="concept_jgc_tf3_p3b__ul_ewt_rrb_5jb" data-ofbid="concept_jgc_tf3_p3b__ul_ewt_rrb_5jb">
                        <li class="- topic/li li">
                            <code class="+ topic/ph pr-d/codeph ph codeph">sdc.createEvent(&lt;String type&gt;, &lt;Integer version&gt;)</code>
                            - Creates an event record with the specified event type and version
                            number. You can create a new event type or use an existing event type.
                            Existing event types are documented in other event-generating stages.
                                <p class="- topic/p p">The event record contains no record fields. Generate record
                                fields as needed.</p></li>
                        <li class="- topic/li li">
                            <code class="+ topic/ph pr-d/codeph ph codeph">batch.toEvent(&lt;record&gt;)</code> - Use to append an event
                            record to a batch and pass events to the event output stream. </li>
                    </ul></li>
            </ol></div>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title7" id="concept_nzk_yj3_p3b">
    <h3 class="- topic/title title topictitle3" id="ariaid-title7">Event Record</h3>
    <div class="- topic/body concept/conbody body conbody">
        <div class="- topic/p p">Event records generated by the
            JavaScript Scripting origin have the standard event-related record header
                attributes:<div class="table-container"><table class="- topic/table table frame-all" id="concept_nzk_yj3_p3b__table_brz_3gp_qx" data-ofbid="concept_nzk_yj3_p3b__table_brz_3gp_qx" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__1">Record Header Attribute</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__2">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__1">sdc.event.type</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__2">Event type, specified by the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.createEvent</code> method.</td>
            </tr>
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__1">sdc.event.version</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__2">Event version, specified by the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.createEvent</code>
                method.</td>
            </tr>
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__1">sdc.event.creation_timestamp</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" id="concept_nzk_yj3_p3b__entry-Event-creationDate" headers="concept_nzk_yj3_p3b__table_brz_3gp_qx__entry__2">Epoch timestamp when the stage created the event.
              </td>
            </tr>
                    </tbody></table></div></div>
    </div>
</article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title8" id="concept_ty1_t13_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title8">Record Header Attributes</h2>
    <div class="- topic/body concept/conbody body conbody">
        <p class="- topic/p p">The
            script in the JavaScript Scripting origin can create custom record header attributes.
                <span class="- topic/ph ph">Pipeline logic can use record header attributes to affect data
                flow. Therefore, you might create a custom record header attribute for a specific
                purpose. For more information, see <a class="- topic/xref xref" href="../Pipeline_Design/RecordHeaderAttributes.html#concept_wn2_jcz_dz">Record Header Attributes</a>.</span></p>
        <p class="- topic/p p">All records include a set of internal record header attributes that stages
            update automatically as they process records. Error records also have their own set of
            internal header attributes. You cannot change values of internal header attributes in
            scripts.</p>
        <div class="- topic/p p">You can use the following record header variables to work with header
                attributes:<ul class="- topic/ul ul" id="concept_ty1_t13_p3b__ul_recordHeaderVariablesForScripts" data-ofbid="concept_ty1_t13_p3b__ul_recordHeaderVariablesForScripts">
                <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">record.&lt;header name&gt;</code> - Use to return the value of a header
                    attribute.</li>
                <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">record.attributes</code> - Use to return a map of custom record header
                    attributes, or to create or update a specific record header attribute.</li>
            </ul></div>
        <div class="- topic/note note tip note_tip"><span class="note__title">Tip:</span> Use data preview to view the record header attributes
            included in a record.</div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title9" id="concept_crz_j5h_p3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title9">Calling External Java Code</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc">You can call external Java code from the JavaScript Scripting origin. Simply install
        the external Java library to make it available to the origin. Then, call the external Java
        code from the script that you develop for the origin. </p>
        <p class="- topic/p p">You install the external Java library into the <span class="- topic/ph ph">Data Collector</span>
            basic stage library, <code class="+ topic/ph pr-d/codeph ph codeph"><span class="- topic/ph ph">streamsets-datacollector-basic-lib</span></code>, which includes the origin. <span class="- topic/ph ph">For information about installing additional drivers, <span class="- topic/ph ph" id="concept_crz_j5h_p3b__SDCDPM-ExtLibs-linksOnly">see <a class="- topic/xref xref" href="../Configuration/ExternalLibs.html#concept_pdv_qlw_ft">Install External Libraries</a>.</span></span></p>
        <div class="- topic/p p">To call the external Java code, simply obtain a reference to the Java
            type in your script, as
            follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>var &lt;class name&gt; = Java.type('&lt;package&gt;.&lt;class name&gt;');</code></pre></div>
        <div class="- topic/p p">For example, let's say that you installed the Bouncy Castle JAR file
            to compute SHA-3 (Secure Hash Algorithm 3) digests. Add the following statement to your
            script:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>var DigestSHA3 = Java.type('org.bouncycastle.jcajce.provider.digest.SHA3.DigestSHA3');</code></pre></div>
        <p class="- topic/p p">For more information, see the following StreamSets blog post:
                <a class="- topic/xref xref" href="https://streamsets.com/blog/calling-external-java-code-script-evaluators/" target="_blank" rel="external noopener">Calling External Java Code from Script
                Evaluators</a>.</p>
    </div>
</article><article class="- topic/topic task/task topic task nested1" aria-labelledby="ariaid-title10" id="task_hnz_nnj_l3b">
    <h2 class="- topic/title title topictitle2" id="ariaid-title10">Configuring a JavaScript Scripting Origin</h2>
    
    <div class="- topic/body task/taskbody body taskbody"><p class="- topic/shortdesc shortdesc"></p>
        <section class="- topic/section task/context section context">
            <p class="- topic/p p">Configure a JavaScript Scripting
                origin to run a JavaScript script to create <span class="- topic/ph ph">Data Collector</span>
                records. </p>
        </section>
        <section class="- topic/ol task/steps ol steps"><ol class="- topic/ol task/steps ol steps" id="task_hnz_nnj_l3b__steps_r5b_dmj_q3b" data-ofbid="task_hnz_nnj_l3b__steps_r5b_dmj_q3b"><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">In the Properties panel, on the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">General</span> tab, configure the
                    following properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_hnz_nnj_l3b__table_ac1_hss_5x" data-ofbid="task_hnz_nnj_l3b__table_ac1_hss_5x" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__1">General Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__1">Name</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__2">Stage name.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__1">Description</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__2">Optional description.</td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__1"><a class="- topic/xref xref" href="JavaScriptScripting.html#concept_jgc_tf3_p3b">Produce Events</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__2">Generates event records when events occur. Use for
                  <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">event handling</a>.</td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__1"><a class="- topic/xref xref" href="../Pipeline_Design/ErrorHandling.html#concept_atr_j4y_5r">On Record Error</a></td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_hnz_nnj_l3b__table_ac1_hss_5x__entry__2">Error record handling for the stage: <ul class="- topic/ul ul" id="task_hnz_nnj_l3b__ul_h5l_np2_px" data-ofbid="task_hnz_nnj_l3b__ul_h5l_np2_px">
                  <li class="- topic/li li">Discard - Discards the record.</li>
                  <li class="- topic/li li">Send to Error - Sends the record to the pipeline for error handling.</li>
                  <li class="- topic/li li">Stop Pipeline - Stops the pipeline. </li>
                </ul></td>
            </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Performance</span> tab, configure the following
                    properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_hnz_nnj_l3b__table_ugl_2lj_q3b" data-ofbid="task_hnz_nnj_l3b__table_ugl_2lj_q3b" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="task_hnz_nnj_l3b__table_ugl_2lj_q3b__entry__1">Performance Property</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="task_hnz_nnj_l3b__table_ugl_2lj_q3b__entry__2">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_hnz_nnj_l3b__table_ugl_2lj_q3b__entry__1">Batch Size</td>
                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_hnz_nnj_l3b__table_ugl_2lj_q3b__entry__2">Number of records to generate in a single batch.<p class="- topic/p p">The script
                                    accesses this value with the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.batchSize</code>
                                    constant and implements batch processing.</p><p class="- topic/p p">Default value is
                                    1000. <span class="- topic/ph ph">Data Collector</span> honors values up to the <span class="- topic/ph ph">Data Collector</span> maximum batch size. The <span class="- topic/ph ph">Data Collector</span> default is 1000.</p></td>
                        </tr>
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_hnz_nnj_l3b__table_ugl_2lj_q3b__entry__1">Number of Threads</td>
                            <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_hnz_nnj_l3b__table_ugl_2lj_q3b__entry__2">Number of threads that generate data concurrently in
                                    parallel.<p class="- topic/p p">The script accesses this value with the
                                        <code class="+ topic/ph pr-d/codeph ph codeph">sdc.numThreads</code> constant and implements
                                    multithreaded processing.</p></td>
                        </tr>
                    </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Script</span> tab, configure the following property:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_hnz_nnj_l3b__table_lk2_glj_q3b" data-ofbid="task_hnz_nnj_l3b__table_lk2_glj_q3b" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="task_hnz_nnj_l3b__table_lk2_glj_q3b__entry__1">Script Property</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="task_hnz_nnj_l3b__table_lk2_glj_q3b__entry__2">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_hnz_nnj_l3b__table_lk2_glj_q3b__entry__1">User Script</td>
                            <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_hnz_nnj_l3b__table_lk2_glj_q3b__entry__2">Script that runs during pipeline execution.<div class="- topic/p p">
                                    <div class="- topic/note note tip note_tip"><span class="note__title">Tip:</span> To toggle full-screen editing, press either F11
                                        or Esc, depending on the operating system, when the cursor
                                        is in the editor.</div>
                                </div></td>
                        </tr>
                    </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Advanced</span> tab, configure the following
                    properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_hnz_nnj_l3b__table_o1r_15p_l3b" data-ofbid="task_hnz_nnj_l3b__table_o1r_15p_l3b" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_hnz_nnj_l3b__table_o1r_15p_l3b__entry__1">Advanced Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_hnz_nnj_l3b__table_o1r_15p_l3b__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_hnz_nnj_l3b__table_o1r_15p_l3b__entry__1"><a class="- topic/xref xref" href="JavaScriptScripting.html#concept_ew4_y5h_p3b">Record Type</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_hnz_nnj_l3b__table_o1r_15p_l3b__entry__2">Record type to use during script
                                    execution:<ul class="- topic/ul ul" id="task_hnz_nnj_l3b__ul_ozx_5kd_j3b" data-ofbid="task_hnz_nnj_l3b__ul_ozx_5kd_j3b">
                                    <li class="- topic/li li">Data Collector Records - Select when scripts use <span class="- topic/ph ph">Data Collector</span> Java API methods to access records.</li>
                                    <li class="- topic/li li">Native Objects - Select when scripts use native types to
                                        access records.</li>
                                </ul><p class="- topic/p p">Default value is Native Objects.</p></td>
                                </tr>
                                <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_hnz_nnj_l3b__table_o1r_15p_l3b__entry__1">Parameters in Script</td>
                            <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_hnz_nnj_l3b__table_o1r_15p_l3b__entry__2">Script parameters and their values.<p class="- topic/p p">The script accesses the
                                    values with the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.userParams</code>
                                dictionary.</p></td>
                        </tr>
                            </tbody></table></div>
                </div>
            </li></ol></section>
    </div>
</article></article></article></main></div>

                        
                        
                        


                    </div>
                    
                </div>
            </div>


        </div> <nav class="navbar navbar-default wh_footer" data-whc_version="25.0">
  <div class=" footer-container  mx-auto">
    <!-- script for Data Collector, all flavors, but only used when accessed directly, not from portal --><script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-60917135-3', 'auto');
  ga('send', 'pageview');
</script>
  </div>
</nav>

        
        <div id="go2top">
            <span class="oxy-icon oxy-icon-up"></span>
        </div>
        
        <!-- The modal container for images -->
        <div id="modal_img_large" class="modal">
            <span class="close oxy-icon oxy-icon-remove"></span>
            <!-- Modal Content (The Image) -->
            <div id="modal_img_container"></div>
            <!-- Modal Caption (Image Text) -->
            <div id="caption"></div>
        </div>
        
        
        Â© 2023 StreamSets, Inc.

    </body>
</html>